package cn.itcast.openai;

import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.ChatCompletionCreateParams;

/**
 * @author zzw
 */
public class CompletionsDemo {

    public static void main(String[] args) {
        // 创建客户端，指定 API Key 与 baseUrl，其中API KEY从系统环境变量中获取
        OpenAIClient client = OpenAIOkHttpClient.builder()
                                                .baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
                                                .apiKey("sk-a1facdd2bd864836ae701a1f8e60cdb0")
                                                .build();

        // 构造聊天参数
        ChatCompletionCreateParams createParams = ChatCompletionCreateParams.builder()
                                                                            .model("qwen-plus") // 指定模型
                                                                            .addSystemMessage(
                                                                                    "你是一位Java程序员助理，具备扎实的Java" +
                                                                                    "编程基础和良好的代码理解能力。") // 添加系统消息
                                                                            .addUserMessage("你是谁？") // 添加用户消息
                                                                            .build();

        // 调用接口，获取结果并打印
        client.chat().completions()
              .create(createParams)
              .choices()
              .stream()
              .flatMap(choice -> choice.message().content().stream())
              .forEach(System.out::println);
    }

}